﻿using Admin.CommonLib.Models.User;
using Swimj.CommonLib.Base;

namespace Admin.RazorLib.Services
{
    public interface IUserService
    {
        Task<PaginatedResult<UserInfoResponseDto>> QueryUsersByPage(UserSearchRequestDto model);

        Task<Result<List<UserInfoResponseDto>>> QueryUsers(UserSearchRequestDto model);

        Task<HttpResponseMessage> ExportTemplate();

        Task<HttpResponseMessage> ExportUsers(UserSearchRequestDto searchRequestDto);

        Task<Result<UserInfoResponseDto>> CreateUser(UserEditRequestDto model);

        Task<Result<UserInfoResponseDto>> GetUser(Guid key);

        Task<Result<UserInfoResponseDto>> UpdateUser(Guid key, UserEditRequestDto model);

        Task<Result<IList<UserImportResponseDto>>> ImportUsers(int importType, string fileName, Stream stream);
    }
}